n, l, r= [int(item) for item in input().split()]
def _enumerate(n):
if n <= 1:
return 1
else:
return _enumerate(n//2)*2 + 1
def _list(n):
if n<=1:
return n
else:
return 2 * _list(n//2) + n%2
def solve(p, n, temp, prev):
if p == 0:
return 0
elif p == temp:
return _list(n)
elif p==temp//2 + 1:
return _list(n//2) + n%2
elif p>temp:
return _list(n) + prev%2 + solve(p - temp - 1, n//2, temp//2, n)
else:
return solve(p, n//2, temp//2, n)
def help_sam(l, r, n):
lower = solve(l - 1, n, _enumerate(n), 0)
higher = solve(r, n, _enumerate(n), 0)
return higher - lower
output = help_sam(l, r, n)
print(output)
706B - Interesting drink | 1265A - Beautiful String |
214A - System of Equations | 287A - IQ Test |
1108A - Two distinct points | 1064A - Make a triangle |
1245C - Constanze's Machine | 1005A - Tanya and Stairways |
1663F - In Every Generation | 1108B - Divisors of Two Integers |
1175A - From Hero to Zero | 1141A - Game 23 |
1401B - Ternary Sequence | 598A - Tricky Sum |
519A - A and B and Chess | 725B - Food on the Plane |
154B - Colliders | 127B - Canvas Frames |
107B - Basketball Team | 245A - System Administrator |
698A - Vacations | 1216B - Shooting |
368B - Sereja and Suffixes | 1665C - Tree Infection |
1665D - GCD Guess | 29A - Spit Problem |
1097B - Petr and a Combination Lock | 92A - Chips |
1665B - Array Cloning Technique | 1665A - GCD vs LCM |